package com.tzbank.entity;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Table;

import javax.persistence.Column;
import javax.persistence.Entity;
import java.io.Serializable;
import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = false)
@Entity(name = "mb_base_msg_template")
@Table(appliesTo = "mb_base_msg_template", comment = "消息主题模板信息表")
public class BaseMsgTemplate extends BaseModel implements Serializable{
	/**
	 *    
	 */
	private static final long serialVersionUID = -8328160145174486237L;

	/**
	 * 消息模板id 随机生成 唯一
	 */
	@ApiModelProperty(value = "消息id 随机生成 唯一")
	@Column(name = "template_id", columnDefinition = "varchar(100)  NOT NULL COMMENT '消息id 随机生成 唯一'")
	private String templateId;
	
	/**
     * 任务名称
     */
	@ApiModelProperty(value = "任务名称")
	@Column(name = "task_name", columnDefinition = "varchar(200)  DEFAULT NULL COMMENT '任务名称'")
    private String taskName;

    /**
     * 消息推送标题
     */
	@ApiModelProperty(value = "消息推送标题")
	@Column(name = "title", columnDefinition = "varchar(200)  DEFAULT NULL COMMENT '消息推送标题'")
    private String title;

    /**
     * 消息推送内容
     */
	@ApiModelProperty(value = "消息推送内容")
	@Column(name = "content", columnDefinition = " text DEFAULT NULL COMMENT '消息推送内容'")
    private String content;

    /**
     * 消息推送跳转地址
     */
	@ApiModelProperty(value = "消息推送跳转地址")
	@Column(name = "uri", columnDefinition = "varchar(200)  DEFAULT NULL COMMENT '消息推送跳转地址'")
    private String uri;

    /**
     * 推送维度，参考DeliveryType枚举
     */
	@ApiModelProperty(value = "推送维度")
	@Column(name = "delivery_type", columnDefinition = "int(11)  DEFAULT NULL COMMENT '推送维度'")
    private Integer deliveryType;

    /**
     * 消息有效期，单位s，消息有效期内设备在线方可下发，请根据实际业务场景设置，最长不能超过7天
     */
	@ApiModelProperty(value = "消息有效期，单位s，消息有效期内设备在线方可下发，请根据实际业务场景设置，最长不能超过7天")
	@Column(name = "expired_seconds", columnDefinition = "varchar(100)  DEFAULT NULL COMMENT '消息有效期，单位s，消息有效期内设备在线方可下发，请根据实际业务场景设置，最长不能超过7天'")
    private String expiredSeconds;

    /**
     * 目标key
     */
	@ApiModelProperty(value = "目标key")
	@Column(name = "target_msgkey", columnDefinition = "varchar(50)  DEFAULT NULL COMMENT '目标key'")
    private String targetMsgkey;
	
	/**
	 * 消息推送时间
	 */
	@ApiModelProperty(value = "消息推送时间")
	@Column(name = "push_date",columnDefinition = "timestamp DEFAULT NOW() NOT NULL COMMENT '消息推送时间'")
	private Date pushDate;
 
	
	/**
	 * 消息类型：公告信息，待办信息，动账通知，客服聊天记录
	 */
	@ApiModelProperty(value = "消息类型")
	@Column(name = "msg_type", columnDefinition = "varchar(50)  DEFAULT NULL COMMENT '消息类型：公告信息，待办信息，动账通知，客服聊天记录'")
	private String msgType;

	/**
	 *	消息展示方式：文本，外联链接，内部跳转
	 */
	@ApiModelProperty(value = "消息展示方式")
	@Column(name = "show_mode", columnDefinition = "varchar(50)  DEFAULT NULL COMMENT '消息展示方式：文本，外联链接，内部跳转'")
	private String showMode;
	
	
	/**
	 * 推送标记：0-需要推送， 1-不需要推送
	 */
	@ApiModelProperty(value = "推送标记")
	@Column(name = "push_tag", columnDefinition = "varchar(50)  DEFAULT NULL COMMENT '推送标记：0-需要推送， 1-不需要推送'")
	private String pushTag;
	
	/**
	 * 推送对象：个人，群体，全部
	 */
	@ApiModelProperty(value = "推送对象")
	@Column(name = "push_object", columnDefinition = "varchar(50)  DEFAULT NULL COMMENT '推送对象：个人，群体，全部'")
	private String pushObject;
	
	/**
	 * 备注
	 */
	@ApiModelProperty(value = "备注")
	@Column(name = "remark", columnDefinition = "text  DEFAULT NULL COMMENT '备注'")
	private String remark;
}
